Automatic call distribution systems are known. Such systems are typically used in an organizational context as a means of distributing telephone calls among a group of agents of the organization. Agents are typically segregated into groups to serve particular call targets within an organization.
Often the organization disseminates a single telephone number to its customers and to the public in general as a means of contacting the organization. As calls are directed to the organization from the public switch telephone network (PSTN), the automatic call distribution system directs the calls to its agents based upon some algorithm, typically based upon availability. For example, where all agents are considered equal, the automatic call distributor (ACD) may distribute the calls based upon which agent position (telephone) has been idle the longest.
In order to staff an ACD, an organization often relies on historical levels (in Erlangs) of incoming calls to the individual call targets. A manager of the ACD may examine the historical call loading records, add or subtract a percentage of the historical loading based upon a most recent call history (e.g., the most recent week or month), and estimate a staffing level based upon those calculations. Alternatively, some organizations have relied upon commercially available predictive software (i.e., force management packages) that calculates daily staffing levels based upon historic information.
Once daily staffing levels have been estimated, agents are scheduled based upon those estimates. Where more than one organizational call target is involved (e.g., sales agents, service agents, outgoing call campaign agents, etc.), requiring different agent skills, each group may be separately staffed based upon an Erlang estimate for that group.
As an alternative to staffing individual groups, some systems group all agents together and assign a skill rating to each agent. Calls are then assigned based upon the skill rating of the agent for handling that type of call.
For example, where a single group is used, an ACD will always look for and assign the call to the most qualified agent. However, some agents are more qualified than others. Because of the differences in qualifications, some agents receive more calls than others, resulting in an inequitable work load.
Further, where all agents are grouped together, an Erlang rate for any one group becomes irrelevant. For example, one benefit of using a common group relates to economies of scale. Two separate groups that separately require 10 agents each would typically only require 18 agents from a common pool of agents. On the other hand, some systems share some agents and, therefore, there is some economies due to the sharing, however, neither extreme is typically used exclusively.
Further, because of sharing it is difficult, if not impossible for call center management to know how many agents are serving a particular application. Because of the difficulty of determining agent loading, it is also difficult to project staffing requirements in a shared agent environment.
Further, the balancing of calls arriving in a multi-site call center environment can be a difficult problem to solve. One way to handle this problem is to distribute calls that arrive in a round-robin fashion among the call centers. The problem with this approach is that it does not consider local loading and, as a consequence that which is locally optimal may not be globally optimal. For example, suppose that call center O is over-utilized in terms of agents with skills S1 . . . SK, while at call center U, agents with those skills are under-utilized. The naive round-robin approach would route a call requiring skills S1 . . . SK, to O or U with equal probability, while clearly it would be much better to route that call to call center U.
In general, in contact centers, including call centers, it is difficult to allocate resources, including personnel resources, such that the goals of the contact center business (e.g., average speed of answer, service level, level of abandoned calls, etc.) are met. Where all agents are grouped together, staffing estimates can be based upon an Erlang rate of the agent pool as a whole. Basing a staffing estimate upon an organization as a whole is subject to large errors, if the agents are not, in fact, grouped together. Because of the importance of call handling through ACDs and the need to route agents according to skill, a need exists for a method of assigning agents which is more flexible than the individual group method.